﻿Public Class DseguimientoCreditoHip

    Public Shared Function SeleccionarTodoXEntidadFin(ByVal descEmpresa As String, ByVal pSeparacionVenta As EseparacionVenta) As List(Of EseguimientoCreditoHip)
        Dim seguimientoCreditoHips As List(Of EseguimientoCreditoHip) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_separacionVentaSeguimientoInstancias_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa ", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@idSeparacionVenta ", SqlDbType.Int).Value = pSeparacionVenta.idSeparacionVenta
                cmd.Parameters.Add("@idEntidadFin ", SqlDbType.Int).Value = pSeparacionVenta.idEntidadFin
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            seguimientoCreditoHips = New List(Of EseguimientoCreditoHip)
                            Dim seguimientoCreditoHip As EseguimientoCreditoHip = Nothing
                            Do While dr.Read
                                seguimientoCreditoHip = New EseguimientoCreditoHip( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idSeparacionVenta")), _
                                    dr.GetString(dr.GetOrdinal("estadoCreditoHip")), _
                                    dr.GetInt32(dr.GetOrdinal("idSeguimiento")), _
                                    dr.GetString(dr.GetOrdinal("Seguimiento")), _
                                    dr.GetString(dr.GetOrdinal("fchCreacion")), _
                                    dr.GetString(dr.GetOrdinal("fchModificacion")), _
                                    dr.GetString(dr.GetOrdinal("Observacion")))
                                seguimientoCreditoHips.Add(seguimientoCreditoHip)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return seguimientoCreditoHips
    End Function
    Public Shared Function EditarInstanciasCreditoHip(ByVal descEmpresa As String, ByVal pSeguimientoCreditoHip As EseguimientoCreditoHip) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_seguimientoCreditoHip_edit", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeguimientoCreditoHip.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeguimientoCreditoHip.idEtapa
                cmd.Parameters.Add("@idSeparacionVenta", SqlDbType.Int).Value = pSeguimientoCreditoHip.idSeparacionVenta
                cmd.Parameters.Add("@estadoCreditoHip", SqlDbType.Int).Value = pSeguimientoCreditoHip.estadoCreditoHip
                cmd.Parameters.Add("@fchModificacion", SqlDbType.Char, 10).Value = pSeguimientoCreditoHip.fchModificacion
                cmd.Parameters.Add("@observacion", SqlDbType.Text).Value = pSeguimientoCreditoHip.Observacion
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pSeguimientoCreditoHip.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function

    '-------    TEMPORAL     --------'
    Public Shared Function SeleccionarTodoXEntidadFinTemp(ByVal descEmpresa As String, ByVal pSeparacionVenta As EseparacionVenta) As List(Of EseguimientoCreditoHip)
        Dim seguimientoCreditoHips As List(Of EseguimientoCreditoHip) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_separacionVentaSeguimientoInstanciasTemp_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa ", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@idSeparacionVenta ", SqlDbType.Int).Value = pSeparacionVenta.idSeparacionVenta
                cmd.Parameters.Add("@idEntidadFin ", SqlDbType.Int).Value = pSeparacionVenta.idEntidadFin
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            seguimientoCreditoHips = New List(Of EseguimientoCreditoHip)
                            Dim seguimientoCreditoHip As EseguimientoCreditoHip = Nothing
                            Do While dr.Read
                                seguimientoCreditoHip = New EseguimientoCreditoHip( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idSeparacionVenta")), _
                                    dr.GetString(dr.GetOrdinal("estadoCreditoHip")), _
                                    dr.GetInt32(dr.GetOrdinal("idSeguimiento")), _
                                    dr.GetString(dr.GetOrdinal("Seguimiento")), _
                                    dr.GetString(dr.GetOrdinal("fchCreacion")), _
                                    dr.GetString(dr.GetOrdinal("fchModificacion")), _
                                    dr.GetString(dr.GetOrdinal("Observacion")))
                                seguimientoCreditoHips.Add(seguimientoCreditoHip)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return seguimientoCreditoHips
    End Function
    Public Shared Function EditarInstanciasCreditoHipTemp(ByVal descEmpresa As String, ByVal pSeguimientoCreditoHip As EseguimientoCreditoHip) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_seguimientoCreditoHipTemp_edit", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeguimientoCreditoHip.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeguimientoCreditoHip.idEtapa
                cmd.Parameters.Add("@idSeparacionVenta", SqlDbType.Int).Value = pSeguimientoCreditoHip.idSeparacionVenta
                cmd.Parameters.Add("@estadoCreditoHip", SqlDbType.Int).Value = pSeguimientoCreditoHip.estadoCreditoHip
                cmd.Parameters.Add("@fchModificacion", SqlDbType.Char, 10).Value = pSeguimientoCreditoHip.fchModificacion
                cmd.Parameters.Add("@observacion", SqlDbType.Text).Value = pSeguimientoCreditoHip.Observacion
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pSeguimientoCreditoHip.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function

    ' ------------------- TECHO PROPIO ---------------
    Public Shared Function SeleccionarTodoInstanciasTP(ByVal descEmpresa As String, ByVal pSeparacionVenta As EseparacionVenta) As List(Of EseguimientoCreditoHip)
        Dim seguimientoCreditoHips As List(Of EseguimientoCreditoHip) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_techopropioSeguimientoInstancias_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa ", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@idSeparacionVenta ", SqlDbType.Int).Value = pSeparacionVenta.idSeparacionVenta
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            seguimientoCreditoHips = New List(Of EseguimientoCreditoHip)
                            Dim seguimientoCreditoHip As EseguimientoCreditoHip = Nothing
                            Do While dr.Read
                                seguimientoCreditoHip = New EseguimientoCreditoHip( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idSeparacionVenta")), _
                                    dr.GetString(dr.GetOrdinal("estadotechopropio")), _
                                    dr.GetString(dr.GetOrdinal("descestado")), _
                                    dr.GetInt32(dr.GetOrdinal("idInstanciaTP")), _
                                    dr.GetString(dr.GetOrdinal("Seguimiento")), _
                                    dr.GetString(dr.GetOrdinal("fchCreacion")), _
                                    dr.GetString(dr.GetOrdinal("fchModificacion")), _
                                    dr.GetString(dr.GetOrdinal("Observacion")), _
                                    dr.GetInt32(dr.GetOrdinal("Usuario")), _
                                    dr.GetString(dr.GetOrdinal("descUsuario")))
                                seguimientoCreditoHips.Add(seguimientoCreditoHip)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return seguimientoCreditoHips
    End Function

    Public Shared Function EditarInstanciasTechoPropio(ByVal descEmpresa As String, ByVal pSeguimientoCreditoHip As EseguimientoCreditoHip) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_seguimientoTechoPropio_edit", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeguimientoCreditoHip.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeguimientoCreditoHip.idEtapa
                cmd.Parameters.Add("@idSeparacionVenta", SqlDbType.Int).Value = pSeguimientoCreditoHip.idSeparacionVenta
                cmd.Parameters.Add("@idInstanciaTP", SqlDbType.Int).Value = pSeguimientoCreditoHip.idSeguimiento
                cmd.Parameters.Add("@estadoInstanciaTP", SqlDbType.Int).Value = pSeguimientoCreditoHip.estado
                cmd.Parameters.Add("@fchModificacion", SqlDbType.Char, 10).Value = pSeguimientoCreditoHip.fchModificacion
                cmd.Parameters.Add("@observacion", SqlDbType.Text).Value = pSeguimientoCreditoHip.Observacion
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pSeguimientoCreditoHip.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function

End Class
